package.json
작성일 : 2025.01.06
1. package.json이란?
Node.js 프로젝트의 설정 파일입니다. 프로젝트의 정보와 의존성(dependencies)을 관리하는 중요한 파일입니다.
2. 가장 중요한 두 가지 필드
name (이름)
프로젝트의 이름을 지정합니다.
{
"name": "my-project"
}
- 반드시 소문자로 작성
- 특수문자, 공백 사용 불가
- URL에 사용되므로 URL 안전 문자만 사용
version (버전)
프로젝트의 버전을 지정합니다.
{
"version": "1.0.0"
}
- 반드시 세 자리 숫자로 구성 (예: 1.0.0)
- 변경사항이 있을 때마다 버전 업데이트 필요
3. 프로젝트 정보 필드
description (설명)
{
"description": "이 프로젝트 는 ..."
}
- 프로젝트에 대한 간단한 설명
- npm 검색 시 표시되는 내용
homepage (홈페이지)
{
"homepage": "https://github.com/username/project"
}
- 프로젝트 웹사이트 주소
author (작성자)
{
"author": {
"name": "홍길동",
"email": "hong@example.com",
"url": "https://hong.com"
}
}
4. 라이선스 (license)
{
"license": "MIT"
}
- 일반적으로 "MIT", "Apache-2.0" 등 사용
- 비공개 프로젝트는 "UNLICENSED" 사용
5. 실행 스크립트 (scripts)
프로젝트에서 자주 실행하는 명령어를 저장합니다.
{
"scripts": {
"start": "node index.js",
"test": "jest",
"build": "webpack"
}
}
npm run 스크립트명으로 실행- 예:
npm run start,npm run test
6. 의존성 관리 (dependencies)
프로젝트에 필요한 패키지들을 관리합니다.
{
"dependencies": {
"express": "^4.17.1",
"react": "^17.0.2"
},
"devDependencies": {
"jest": "^27.0.6",
"webpack": "^5.0.0"
}
}
- dependencies: 실제 운영에 필요한 패키지
- devDependencies: 개발 시에만 필요한 패키지
7. 환경 설정
engines (실행 환경)
{
"engines": {
"node": ">=12.0.0"
}
}
- 필요한 Node.js 버전 지정
private (비공개 설정)
{
"private": true
}
- true로 설정하면 실수로 npm에 배포되는 것을 방지
실제 예시
{
"name": "my-awesome-project",
"version": "1.0.0",
"description": "멋진 프로젝트입니다",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "jest"
},
"author": {
"name": "홍길동",
"email": "hong@example.com"
},
"license": "MIT",
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"jest": "^27.0.6"
},
"engines": {
"node": ">=12.0.0"
},
"private": true
}